﻿using System;
using System.Collections.Generic;
using System.Text;

namespace FCNS
{
    /// <summary>
    /// 中国农历
    /// </summary>
   public class ChineseCalendar:System.Globalization.ChineseLunisolarCalendar
    {
       string[] specialHoliday=new string[]{"元旦0101","腊八节0111","世界麻风日0130","春节0203","国际气象节0210","情人节0214","元宵节0217","国际海豹节0301","全国爱耳日0303","学雷锋纪念日0305",
       "妇女节0308","植树节0312","孙中山逝世纪念日0312","国际警察日0314","消费者权益保障日0315","中国国医节0317","国际航海日0317","世界深林日0321","消除种族歧视国际日0321","世界儿歌日0321",
       "世界水日0322","世界气象日0323","世界防止结核病日0324","全国中小学生安全教育日0325","全国爱国卫生运动月0401","税收宣传月0401","清明节0405","世界卫生日0407","世界地球日0422","世界图书和版权日0423",
       "劳动节0501","青年节0504","世界红十字日0508","国际母亲日0508","国际护士节0512","国际家庭日0515","全国助残日0515","国际电信日0517","国际博物馆日0518","全国学生营养日0520",
       "国际牛奶日0523","五卅惨案0530","世界无烟日0531","国际儿童节0601","端午节0604","世界环境保护日0605","放置荒漠化和干旱日0617","父亲节0619","国际奥林匹克日0623","全国土地日0625","国际禁毒日0626","香港回归日0701","中共诞辰0701",
       "世界建筑日0701","国际体育记者日0702","抗日战争纪念日0707","世界人口日0711","被奴役国家周0717","火把节0724","建军节0801","七夕情人节0806","中国男子节0808","爸爸节0808",
       "抗日战争胜利纪念日0815","国际扫盲日0908","世界新闻工作者日0908","毛泽东逝世纪念日0909","中国教师节0910","中秋节0912","世界清洁地球日0914","国际臭氧层保护日0916","九一八事变0918",
       "国际爱牙日0920","国际和平日0920","国际聋人节0925","世界儿童日0925","世界海事日0925","世界旅游日0927","孔子诞辰0928","国庆节1001","世界音乐日1001","国际老人节1001","国际和平与民主斗争日1002",
       "国际住房日1003","世界动物日1004","重阳节1005","老人节1006","全国高血压日1008","世界视觉日1008","世界邮政日1009","万国邮联日1009","世界精神卫生日1010","辛亥革命纪念日1010","世界保健日1013",
       "国际教师节1013","国际标准日1014","国际盲人节1015","白手杖日1015","世界粮食日1016","世界消除贫困日1017","世界传统医药日1022","联合国日1024","世界勤俭日1031","记者节1108","十月社会主义革命纪念日1107",
       "中国记者日1108","全国消防安全宣传教育日1109","世界青年节1110","国际科学与和平日1111","孙中山诞辰纪念日1112","世界糖尿病日1114","国际大学生节1117","世界学生节1117","彝族年1120","世界问候日1121","世界电视日1121",
       "感恩节1124","世界艾滋病日1201","世界残疾人日1203","国际经济和社会发展志愿人员日1205","国际儿童电视日1208","世界足球日1209","世界人权日1210","西安事变纪念日1212","南京大屠杀纪念日1213","澳门回归纪念1220",
       "平安夜1224","圣诞节1225","毛泽东诞辰纪念日1226"};

       /// <summary>
       /// 获取中国节日日期
       /// </summary>
       /// <param name="day">节日名称</param>
       /// <returns>返回公历日期</returns>
       public DateTime GetChineseDate(SpecailHoliday day)
       {
           foreach (string s in specialHoliday)
           {
               return DateTime.Parse(DateTime.Today.Year.ToString()+Enum.Parse(typeof(SpecailHoliday), day.ToString()).ToString());
           }
           return DateTime.MinValue;
       }
       /// <summary>
       /// 获取中国节日名称
       /// </summary>
       /// <param name="date">公历日期</param>
       /// <returns>节日名称</returns>
       public string GetChineseDay(string mmdd)
       {
           StringBuilder sb = new StringBuilder();
           foreach (string s in specialHoliday)
           {
               if (s.Contains(mmdd))
               {
                   sb.Append(s.Substring(0, s.Length - 4)+" ");
               }
           }
           return sb.ToString() ;
       }
       /// <summary>
       /// 获取24节气日日期
       /// </summary>
       /// <param name="day">节日名称</param>
       /// <returns>返回公历日期</returns>
       public DateTime Get24WeatherDate(WeatherDay day)
       {
           return new DateTime();
    
       }
       /// <summary>
       /// 获取24节气日名称
       /// </summary>
       /// <param name="date">公历日期</param>
       /// <returns>节日名称</returns>
       public string Get24WeatherDay(DateTime date)
       {
           return null;
       }
       /// <summary>
       /// 获取国际节日日期
       /// </summary>
       /// <param name="day">节日名称</param>
       /// <returns>返回公历日期</returns>
       public DateTime GetInternationalDate(InternationalDay day)
       {
           return new DateTime();
       
       }
       /// <summary>
       /// 获取国际节日名称
       /// </summary>
       /// <param name="date">公历日期</param>
       /// <returns>节日名称</returns>
       public string GetInternationalDay(DateTime date)
       {
           return null;
       }

       //struct SpecialHoliday
       //{
       //    string name;
       //    string md;
       //    string dates;
       //    public SpecialHoliday(string name, string md, string dates)
       //    {
       //        Enum.
       //    }
       //}
    }

    #region 节日
    /// <summary>
    /// 中国节日
    /// </summary>
   public enum SpecailHoliday
   {
       元旦 = 0101,
       腊八节 = 0111,
       世界麻风日 = 0130,
       春节 = 0203,
       国际气象节 = 0210,
       情人节 = 0214,
       元宵节 = 0217,
       国际海豹节 = 0301,
       全国爱耳日 = 0303,
       学雷锋纪念日 = 0305,
       妇女节 = 0308,
       植树节 = 0312,
       孙中山逝世纪念日 = 0312,
       国际警察日 = 0314,
       消费者权益保障日 = 0315,
       中国国医节 = 0317,
       国际航海日 = 0317,
       世界深林日 = 0321,
       消除种族歧视国际日 = 0321,
       世界儿歌日 = 0321,
       世界水日 = 0322,
       世界气象日 = 0323,
       世界防止结核病日 = 0324,
       全国中小学生安全教育日 = 0325,
       全国爱国卫生运动月 = 0401,
       税收宣传月 = 0401,
       清明节 = 0405,
       世界卫生日 = 0407,
       世界地球日 = 0422,
       世界图书和版权日 = 0423,
       劳动节 = 0501,
       青年节 = 0504,
       世界红十字日 = 0508,
       国际母亲日 = 0508,
       国际护士节 = 0512,
       国际家庭日 = 0515,
       全国助残日 = 0515,
       国际电信日 = 0517,
       国际博物馆日 = 0518,
       全国学生营养日 = 0520,
       国际牛奶日 = 0523,
       五卅惨案 = 0530,
       世界无烟日 = 0531,
       国际儿童节 = 0601,
       端午节 = 0604,
       世界环境保护日 = 0605,
       放置荒漠化和干旱日 = 0617,
       父亲节 = 0619,
       国际奥林匹克日 = 0623,
       全国土地日 = 0625,
       国际禁毒日 = 0626,
       香港回归日 = 0701,
       中共诞辰 = 0701,
       世界建筑日 = 0701,
       国际体育记者日 = 0702,
       抗日战争纪念日 = 0707,
       世界人口日 = 0711,
       被奴役国家周 = 0717,
       火把节0724,
       建军节 = 0801,
       七夕情人节 = 0806,
       中国男子节 = 0808,
       爸爸节 = 0808,
       抗日战争胜利纪念日 = 0815,
       国际扫盲日 = 0908,
       世界新闻工作者日 = 0908,
       毛泽东逝世纪念日 = 0909,
       中国教师节 = 0910,
       中秋节 = 0912,
       世界清洁地球日 = 0914,
       国际臭氧层保护日 = 0916,
       九一八事变 = 0918,
       国际爱牙日 = 0920,
       国际和平日 = 0920,
       国际聋人节 = 0925,
       世界儿童日 = 0925,
       世界海事日 = 0925,
       世界旅游日 = 0927,
       孔子诞辰 = 0928,
       国庆节 = 1001,
       世界音乐日 = 1001,
       国际老人节 = 1001,
       国际和平与民主斗争日 = 1002,
       国际住房日 = 1003,
       世界动物日 = 1004,
       重阳节 = 1005,
       老人节 = 1006,
       全国高血压日 = 1008,
       世界视觉日 = 1008,
       世界邮政日 = 1009,
       万国邮联日 = 1009,
       世界精神卫生日 = 1010,
       辛亥革命纪念日 = 1010,
       世界保健日 = 1013,
       国际教师节 = 1013,
       国际标准日 = 1014,
       国际盲人节 = 1015,
       白手杖日 = 1015,
       世界粮食日 = 1016,
       世界消除贫困日 = 1017,
       世界传统医药日 = 1022,
       联合国日 = 1024,
       世界勤俭日 = 1031,
       记者节=1108,
       十月社会主义革命纪念日=1107,
       中国记者日=1108,
       全国消防安全宣传教育日=1109,
       世界青年节=1110,
       国际科学与和平日=1111,
       孙中山诞辰纪念日=1112,
       世界糖尿病日=1114,
       国际大学生节=1117,
       世界学生节=1117,
       彝族年=1120,
       世界问候日=1121,
       世界电视日=1121,
       感恩节=1124,
       世界艾滋病日=1201,
       世界残疾人日=1203,
       国际经济和社会发展志愿人员日=1205,
       国际儿童电视日=1208,
       世界足球日=1209,
       世界人权日=1210,
       西安事变纪念日=1212,
       南京大屠杀纪念日=1213,
       澳门回归纪念=1220,
       平安夜=1224,
    圣诞节=1225,
    毛泽东诞辰纪念日=1226
   }
    /// <summary>
    /// 24节气日
    /// </summary>
    public enum WeatherDay
    {
        立春,
        雨水,
        惊蛰,
        春分,
        清明,
        谷雨,
        立夏,
        小满,
        芒种,
        夏至,
        小暑,
        大暑,
        立秋,
        处暑,
        白露,
        秋分,
        寒露,
        霜降,
        立冬,
        小雪,
        大雪,
        冬至,
        小寒,
        大寒
    }
    /// <summary>
    /// 国际节日
    /// </summary>
    public enum InternationalDay
    {
    }
    #endregion

    /*
     * 立春
2月3--5日 雨水
2月18--20日 惊蛰
3月5--7日 
春分
3月20--22日 清明
4月4--6日 谷雨
4月19--21日 
 立夏
5月5--7日 小满
5月20--22日 芒种
6月5--7日 
夏至
6月21--22日 小暑
7月6--8日 大暑
7月22日--24日 
 立秋
8月7--9日 处暑
8月22--24日 白露
9月7--9日 
秋分
9月22--24日 寒露
10月8--9日 霜降
10月23--24日 
 立冬
11月7--8日 小雪
11月22--23日 大雪
12月6--8日 
冬至
12月21--23 小寒
1月5--7日 大寒
1月20--21日 

     */
}